package com.lujianfei.common

import android.content.Context
import java.lang.Exception

object DensityUtils {

    fun getScreenWidth(context: Context): Int {
        return context.resources.displayMetrics.widthPixels
    }

    fun getScreenHeight(context: Context): Int {
        return context.resources.displayMetrics.heightPixels
    }

    /**
     * 根据手机的分辨率从 dp 的单位 转成为 px(像素)
     */
    inline fun <reified T> dip2px(context: Context, dpValue: Float): T {
        val density = context.resources.displayMetrics.density
        return when (T::class.java) {
            java.lang.Integer::class.java-> (dpValue * density + 0.5f).toInt() as T
            java.lang.Long::class.java-> (dpValue * density + 0.5f).toLong() as T
            java.lang.Float::class.java-> (dpValue * density + 0.5f) as T
            else-> throw Exception("dip2px 类型不支持")
        }
    }
    /**
     * 根据手机的分辨率从 dp 的单位 转成为 px(像素)
     */
    inline fun <reified T> dip2sp(context: Context, dpValue: Float):T {
        val density = context.resources.displayMetrics.scaledDensity
        return when (T::class.java) {
            java.lang.Integer::class.java-> (dpValue * density + 0.5f).toInt() as T
            java.lang.Long::class.java-> (dpValue * density + 0.5f).toLong() as T
            java.lang.Float::class.java-> (dpValue * density + 0.5f) as T
            else-> throw Exception("dip2px 类型不支持")
        }
    }
}